#ifndef __SQL_H__
#define __SQL_H__
#include <sqlite3.h>




sqlite3 *init_db(const char *db_name);

int create_table(sqlite3 *db);

int execute_sql(sqlite3 *db, const char *sql);

int query_data(sqlite3 *db, const char *sql,int *ID , char *username);
void close_db(sqlite3 *db);

int sql_init(sqlite3 *db);

/*

注册 

*/

int enroll_user(sqlite3 *db, char *username, char *password);


int sql_init_sp(const char* db_name);
/*

登录 
    返回成功 100
    返回错误 101
*/
int login_user(sqlite3 *db, const char *username, const char *password, int *user_id);

/*
登录 
    成功 返回 ID 
    失败 返回 -1
*/

int login_user_back_id(sqlite3 *db,const char *username, const char *password);


/*
ID 返回名字 
*/
char* sql_get_username_by_id(sqlite3 *db, int id);
/*
名字 返回ID
*/

int sql_get_id_by_username(sqlite3 *db, const char *username);
/*
ID 返回state
*/


char* sql_get_state_by_id(sqlite3 *db, int id);

/*
插入关系表

*/
int insert_Friends(sqlite3 *db,char *name,int name_ID,char *Friends ,int Friends_ID,char *state);
/*
创建组  admin 置1

*/
int Create_group(sqlite3 *db,int id,char *Create_name,char * group_name);

/*
加入组  admin 置0

*/

int add_group(sqlite3 *db,int id,char *Create_name,char * group_name);

/*
发送朋友圈消息 缓存数据库 MSG_data
                msg   消息存储
*/


int insert_Circle(sqlite3 *db,char* name,int ID,char *msg) ;


/// @brief      
/// @param db    msg_data 数据库
/// @param id    需要获取用户的 id
/// @return  msg 返回获取到的MSG消息字符串
char* sql_print_msgs_by_id(sqlite3 *db, int id,char *name);


char* sql_get_request_by_id(sqlite3 *db, int id ,int Friends_ID) ;



int sql_get_sock_fd_by_id(sqlite3 *db, int ID);

/// @brief              退出群聊
/// @param db 
/// @param ID 
/// @param group_name 
/// @return 
int delete_Group(sqlite3 *db,int ID,char * group_name);

/// @brief              删除好友
/// @param db   
/// @param my_ID        本人ID
/// @param friend_ID    朋友ID
/// @return 
int delete_Friend(sqlite3 *db,int my_ID,int friend_ID );


/// @brief              查找朋友圈消息 是否存在
/// @param db 
/// @param my_ID 
/// @param msg_ID   
/// @return             返回找到的 ID 或 -1
int select_circle_msg(sqlite3 *db, int my_ID ,int msg_ID);


/// @brief              删除朋友圈消息 
/// @param db           数据库
/// @param my_ID        用户ID
/// @param msg_ID       消息ID
/// @return             无
int delete_circle_msg(sqlite3 *db,int my_ID,int msg_ID );

#endif